home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / DB_CLIPP / 1159.ZIP / OSSMOD.PRG < prev    next >
Text File  |  1987-02-10  |  8KB  |  347 lines

  1. SET BELL OFF
  2. DAT=DATE()
  3. PUBLIC CALOVER
  4. CALOVER=0
  5. TOTALREC=1
  6. SET SAFETY OFF
  7. SET EXACT ON
  8. SET DELETED ON
  9. @ 23,34 SAY 'WORKING . . .'
  10. SELECT 2
  11. APPEND BLANK
  12. REPLACE SUBCATID WITH A->SUBCATID
  13. REPLACE INST_TYPE WITH A->INST_TYPE
  14. REPLACE CALIB_DATE WITH A->CALIB_DATE
  15. REPLACE BY_DATE WITH A->BY_DATE
  16. REPLACE CAL_DUE_DT WITH A->CAL_DUE_DT
  17. REPLACE LOCATION WITH A->LOCATION
  18. REPLACE REMARK WITH A->REMARK
  19. REPLACE CALIB_INT WITH A->CALIB_INT
  20. REPLACE SERIAL_NO WITH A->SERIAL_NO
  21. REPLACE TVA_NO WITH A->TVA_NO
  22. IF DUPREC='N'
  23. SET FORMAT TO REPMODIN.FMT
  24. ELSE
  25. SET FORMAT TO REPMODY.FMT
  26. ENDIF
  27. X=0
  28. DO WHILE X<1
  29.  EDIT
  30.  N4='K'
  31.  DO WHILE N4#'Y'.AND.N4#'N'
  32.   CLEAR
  33.   ?
  34.   ?
  35.   ?
  36.   ?
  37.   ?
  38.   WAIT '       Do you want to make any more changes to this record ?  (Y/N)';
  39.  TO N4
  40.   N4=UPPER(N4)
  41.   IF N4#'Y'.AND.N4#'N'
  42.    LOOP
  43.   ENDIF
  44.  ENDDO
  45.   IF N4='Y'
  46.    LOOP
  47.   ENDIF
  48.   IF N4='N'
  49.    CLEAR
  50.    @ 1,16 SAY 'Data base in use:  '
  51.    ?? OSS
  52.    @ 3,0
  53.    ?'The record changes are now being processed, and checked.  If they are'
  54.    ?'okay, they will automatically be added to the main data base.'
  55.    ?
  56.    ?
  57.    ?
  58.    ?
  59.    ?'                           ONE MOMENT PLEASE'
  60.    ?
  61.    ?'                ________________________________________'
  62.    ?'               |                                        |'
  63.    ?'               |    PLEASE DO NOT PRESS ANY KEYS YET    |'
  64.    ?'               |________________________________________|'
  65.    ?
  66.    ?
  67.    GO 1
  68.    IF LEN(TRIM(INST_TYPE))=0
  69.      DO REPWKZAP
  70.      RETURN
  71.    ENDIF
  72.    GO TOP
  73.    YR=YEAR(DAT)
  74.    MO=MONTH(DAT)
  75.    DY=DAY(DAT)
  76.    DO WHILE .NOT.EOF()
  77.     CVAR=LTRIM(TRIM(UPPER(COMLINE)))
  78.     REPLACE SUBCATID WITH UPPER(LTRIM(SUBCATID))
  79.     REPLACE SERIAL_NO WITH UPPER(LTRIM(SERIAL_NO))
  80.     REPLACE TVA_NO WITH UPPER(LTRIM(TVA_NO))
  81.     IF TVAID='Y'
  82.      IF ' ' $ TRIM(TVA_NO)
  83.        VSTR=TRIM(TVA_NO)
  84.        DO WHILE ' ' $ VSTR
  85.          P=AT(' ',VSTR)
  86.          VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
  87.        ENDDO
  88.        REPLACE TVA_NO WITH VSTR
  89.      ENDIF
  90.     ENDIF
  91.     IF SERID='Y'
  92.      IF ' ' $ TRIM(SERIAL_NO)
  93.        VSTR=TRIM(SERIAL_NO)
  94.        DO WHILE ' ' $ VSTR
  95.          P=AT(' ',VSTR)
  96.          VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
  97.        ENDDO
  98.        REPLACE SERIAL_NO WITH VSTR
  99.      ENDIF
  100.     ENDIF
  101.     IF '.D.' $ CVAR.OR.'.E.' $ CVAR
  102.      REPLACE REMARK WITH ' '
  103.      IF LEN(CVAR)<4
  104.       CVAR=' '
  105.      ENDIF
  106.     ENDIF
  107.     IF '.' $ CVAR
  108.     IF '2' $ CVAR
  109.      REPLACE CALIB_INT WITH 99
  110.      REPLACE BY_DATE WITH 0
  111.      IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
  112.        REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  113.        REPLACE CAL_DUE_DT WITH CALIB_DATE
  114.      ENDIF
  115.      REPLACE COMLINE WITH ' '
  116.      EXIT
  117.     ENDIF
  118.     IF '3' $ CVAR
  119.       REPLACE CALIB_INT WITH 0
  120.       REPLACE BY_DATE WITH 0
  121.      IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
  122.        REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  123.        REPLACE CAL_DUE_DT WITH CALIB_DATE
  124.      ENDIF
  125.      REPLACE COMLINE WITH ' '
  126.      EXIT
  127.     ENDIF
  128.     DO CASE
  129.      CASE '.OF.' $ CVAR.OR.'.0F.' $ CVAR
  130.       CALOVER=0
  131.       REPLACE BY_DATE WITH CALOVER
  132.      CASE '.PO.' $ CVAR
  133.       CALOVER=200
  134.       REPLACE BY_DATE WITH CALOVER
  135.       REPLACE COMLINE WITH ' '
  136.       EXIT
  137.      CASE '.P0.' $ CVAR
  138.       CALOVER=200
  139.       REPLACE BY_DATE WITH CALOVER
  140.       REPLACE COMLINE WITH ' '
  141.       EXIT
  142.      CASE '.O.' $ CVAR
  143.       CALOVER=100
  144.       REPLACE BY_DATE WITH CALOVER
  145.       REPLACE COMLINE WITH ' '
  146.       EXIT
  147.      CASE '.0.' $ CVAR
  148.       CALOVER=100
  149.       REPLACE BY_DATE WITH CALOVER
  150.       REPLACE COMLINE WITH ' '
  151.       EXIT
  152.     ENDCASE
  153.     IF ('.ED.' $ CVAR.OR.'.DD.' $ CVAR).AND.(CALIB_INT=0.OR.CALIB_INT=99)
  154.       REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  155.       REPLACE CAL_DUE_DT WITH CALIB_DATE
  156.       REPLACE BY_DATE WITH 0
  157.       REPLACE COMLINE WITH ' '
  158.       EXIT
  159.     ENDIF
  160.    ENDIF
  161.     IF CALIB_INT=99 .OR. CALIB_INT=0
  162.       REPLACE BY_DATE WITH 0
  163.       REPLACE COMLINE WITH ' '
  164.       EXIT
  165.     ENDIF
  166.   REPLACE COMLINE WITH ' '
  167.   IF YEAR(CALIB_DATE)+100-YEAR(DAT)<10
  168.    MOCALDT=MONTH(CALIB_DATE)
  169.    DYCALDT=DAY(CALIB_DATE)
  170.    YRCALDT=INT(YEAR(CALIB_DATE)+100+.5)
  171.    IF MOCALDT<10
  172.      M=1
  173.     ELSE
  174.      M=2
  175.    ENDIF
  176.    IF DYCALDT<10
  177.      D=1
  178.     ELSE
  179.      D=2
  180.    ENDIF
  181.    REPLACE CALIB_DATE WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
  182. STR(YRCALDT,4,0))
  183.   ENDIF
  184.   IF YEAR(CAL_DUE_DT)+100-YEAR(DAT)<10
  185.    MOCALDT=MONTH(CAL_DUE_DT)
  186.    DYCALDT=DAY(CAL_DUE_DT)
  187.    YRCALDT=INT(YEAR(CAL_DUE_DT)+100+.5)
  188.    IF MOCALDT<10
  189.      M=1
  190.     ELSE
  191.      M=2
  192.    ENDIF
  193.    IF DYCALDT<10
  194.      D=1
  195.     ELSE
  196.      D=2
  197.    ENDIF
  198.    REPLACE CAL_DUE_DT WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
  199. STR(YRCALDT,4,0))
  200.   ENDIF
  201.     TCOMP=YR*365.24+MO*30.44+DY
  202.     TDCOMP=YR*365.24+(MO-CALIB_INT)*30.44+DY
  203.     CDCOMP=YEAR(CALIB_DATE)*365.24+MONTH(CALIB_DATE)*30.44+DAY(CALIB_DATE)
  204.     CALDUEP=CDCOMP+CALIB_INT*30.44-5
  205.     CALDUDT=YEAR(CAL_DUE_DT)*365.24+MONTH(CAL_DUE_DT)*30.44+DAY(CAL_DUE_DT)
  206.    IF BY_DATE#200.AND.CALOVER=0
  207.     IF TDCOMP>CDCOMP.OR.CDCOMP>TCOMP
  208.      DO REPCALDT
  209.      LOOP
  210.     ENDIF
  211.     YRDUE=YEAR(CALIB_DATE)
  212.     MODUE=MONTH(CALIB_DATE)+CALIB_INT
  213.     DYDUE=DAY(CALIB_DATE)
  214.     IF MODUE>12
  215.      YRDUE=YRDUE+INT(MODUE/12)
  216.      MODUE=INT(MODUE-INT(MODUE/12)*12+.5)
  217.     ENDIF
  218.     M=1
  219.     IF MODUE>9
  220.      M=2
  221.     ENDIF
  222.     D=2
  223.     IF DYDUE<10
  224.      D=1
  225.     ENDIF
  226.     DATDU=STR(MODUE,M,0)+'/'+STR(DYDUE,D,0)+'/'+STR(YRDUE,4,0)
  227.     CALCDUDT=CTOD(DATDU)
  228.     CALDUETY=YEAR(CALCDUDT)*365.24+MONTH(CALCDUDT)*30.44+DAY(CALCDUDT)
  229.     IF (CALDUDT>CALDUETY.OR.CALDUDT<CALDUEP).AND.CALIB_INT#99
  230.      DO REPCALDU
  231.      LOOP
  232.     ENDIF
  233.    IF BY_DATE#200
  234.     REPLACE BY_DATE WITH CALDUDT-1
  235.    ENDIF
  236.  ENDIF
  237.   CALOVER=0
  238.     EXIT
  239.    ENDDO
  240.    SELECT 1
  241.    RECNUM1=RECNO()
  242.    REPLACE SUBCATID WITH LTRIM(B->SUBCATID)
  243.    REPLACE INST_TYPE WITH LTRIM(B->INST_TYPE)
  244.    REPLACE CALIB_DATE WITH B->CALIB_DATE
  245.    REPLACE CAL_DUE_DT WITH B->CAL_DUE_DT
  246.    REPLACE LOCATION WITH B->LOCATION
  247.    REPLACE REMARK WITH B->REMARK
  248.    REPLACE CALIB_INT WITH B->CALIB_INT
  249.    REPLACE BY_DATE WITH B->BY_DATE
  250.    REPLACE SERIAL_NO WITH B->SERIAL_NO
  251.    REPLACE LAST_UPDAT WITH DAT
  252.    SELECT 2
  253.    ZAP
  254.    SET BELL ON
  255. SELECT 1
  256. SET DELETED ON
  257. CLEAR
  258. GO RECNUM1
  259. @ 1,25 SAY 'Data base in use:  '
  260. ?? OSS
  261. @ 3,0 SAY INSTNAME
  262. @ 3,23 SAY SERIALNUM
  263. @ 3,40 SAY TVANUMBER
  264. @ 3,57 SAY CALIBDATE
  265. @ 3,70 SAY 'NEXT DATE'
  266. DO CASE
  267.  CASE BY_DATE=100
  268.   @ 5,56 SAY TDREMARK
  269.  CASE BY_DATE=200
  270.   @ 5,58 SAY DREMARK
  271. ENDCASE
  272. @ 6,0 SAY INST_TYPE
  273. @ 6,23 SAY SERIAL_NO
  274. @ 6,40 SAY TVA_NO
  275. @ 6,58 SAY CALIB_DATE
  276. @ 6,70 SAY CAL_DUE_DT
  277.   PT=0
  278.   IF CAT3ABB $ SUBCATID
  279.    ?'/'
  280.    ?? CATEGORY3
  281.    ??'/   '
  282.    PT=1
  283.   ENDIF
  284.   IF SUB1ABB $ SUBCATID
  285.    IF PT=0
  286.     ?'('
  287.     ?? SUBCAT1
  288.     ??')   '
  289.     PT=1
  290.    ELSE
  291.     ??'('
  292.     ?? SUBCAT1
  293.     ??')   '
  294.    ENDIF
  295.   ENDIF
  296.   IF SUB2ABB $ SUBCATID
  297.    IF PT=0
  298.     ?'('
  299.     ?? SUBCAT2
  300.     ??')   '
  301.     PT=1
  302.    ELSE
  303.     ??'('
  304.     ?? SUBCAT2
  305.     ??')   '
  306.    ENDIF
  307.   ENDIF
  308.   IF SUB3ABB $ SUBCATID
  309.    IF PT=0
  310.    ?'('
  311.    ?? SUBCAT3
  312.    ??')   '
  313.    ELSE
  314.    ??'('
  315.    ?? SUBCAT3
  316.    ??')   '
  317.    ENDIF
  318.   ENDIF
  319. @ 9,0 SAY LOCATNAME
  320. ??':  '
  321. ?? LOCATION
  322. IF CALIB_INT>0.AND.CALIB_INT<99
  323.  ??'   '
  324.  ?? CALINTERVL
  325.  ??':  '
  326.  ?? CALIB_INT
  327.  ??'  months'
  328. ENDIF
  329. DO CASE
  330.  CASE CALIB_INT=99
  331.   @ 9,60 SAY '/'
  332.   ?? CATEGORY2
  333.   ??'/'
  334.  CASE CALIB_INT=0
  335.   @ 9,60 SAY '/'
  336.   ?? CATEGORY3
  337.   ??'/'
  338. ENDCASE
  339. @ 11,0 SAY REMARK
  340. @ 14,0 SAY 'LAST UPDATE:'
  341. @ 14,14 SAY LAST_UPDAT
  342. RETURN
  343. ENDIF
  344. ENDDO
  345. RETURN
  346.  
  347.